#pragma once

#include<vector>
#include<algorithm>
#include<stdexcept>
using namespace std;

template<class T>
class SignedArray{
private:
	std::vector<T> data_;
	int beginPoint_;
public:
	
	explicit SignedArray(int num){
		data_.resize(num);
	}
	SignedArray<T>(int num, int beginPoint_): beginPoint_(beginPoint_){
		data_.resize(num);
	}
	
	T& operator [] (int index){
		return data_.at(index + beginPoint_);
	}
};




